The principle application area for computer image generation (CIG) has been that of visual training simulators which present scenes to an observer or trainee to allow the observer to practice some task, such as flying an airplane. In a flight simulator, a three-dimensional model of the desired "gaming area" is prepared and stored on magnetic disk or similar bulk storage media. This model is called the visual data base. The visual simulator combines an image generator with an electro-optical display system such as a cathode ray tube (CRT) of similar display. The image generator reads in blocks of three-dimensional data from the disk and transforms this data into two-dimensional scene descriptions. The two-dimensional data are converted to analog video that is presented to the operator or trainee via the display. The generated imagery is meant to be representative of the true scenes that the operator would see if the operator were actually performing the task being simulated. The generation of the display images is said to be in "real time" which is normally taken to mean 30 frames per second, as in the U.S. television standard. CIG systems are described in detail in the book entitled Computer Image Generation edited by Bruce J. Schacter and published by Wiley-Interscience (1983).
Computer generation of visual representations of objects whose various vertices, edges and planes are defined by data bases referenced to a system of axes is described in U.S. Pat. Nos. 3,603,703 to Warnock, 3,621,214 to Romney et al, and 3,665,408 to Erdahl et al. These teach general means for converting such data into a two-dimensional perspective view, with tests for determining which of several overlapping objects will be visible and conceal the others. The scan employed for presentation of the visual image on a cathode-ray tube (CRT) is a conventional horizontally scanned raster. U.S. Pat. No. 3,671,729 to Lux teaches means to cause a mechanical plotter to draw curves or profiles (provided as electrical input signals giving elevation and range for successive radial scans) in which the profile parts which would be out of the field of view of an elevated observer are omitted. The device is not indicated as having any application to electronic image generation, nor does it appear that it could be so applied. U.S. Pat. No. 3,736,564 to Watkins teaches the conversion of electrical signals defining surfaces of a three-dimensional object onto a device such as CRT. The converted signals defining the relative depths of segments of the surfaces along each scan line of the display and selectively subdividing the scan lines according to the visual characteristics of the segments when necessary. Signals defining the visible segments are then utilized to control the intensity of the display.
The real-time computer generation of visual images of landscapes and seascapes find particular use in aircraft or ship simulators. U.S. Pat. No. 3,769,442 to Heartz et al describes a process for producing a compressed data base for a radar land mass simulator. U.S. Pat. No. 4,017,985 to Heartz describes a process for the generation of a perspective scene in which the tangent of the view angle is computed for each range element along a sweep. This process requires a high speed multiply and divide to compute the tangent which is then compared to a stored maximum to determine if the element is seen. If it is seen, it is compared to the last value to fill in skipped pixels. U.S. Pat. No. 4,343,037 to Bolton describes a visual display system in which a pipeline processor is used to compute in real-time the perspective transformation from the textured ground surface plane to the display plane. Application Ser. No. 527,809 filed Aug. 30, 1983, by M. Bunker and assigned to the assignee of this application discloses techniques to reduce dynamic aliasing problems in real time images generated from a textured grid data base.
Real-time generation of visual scenes is at best a difficult computational problem. The more realistic the scene, the more complex the computational problem seens to become. This in turn imposes a severe requirement on the hardware design. In my prior application Ser. No. 546,599, I describe an algorithm for the real-time computer generation of visual scenes that uses a few simple mathematical functions resulting in a significant speed-up of scene generation time and a corresponding simplication of the hardware requirements. I accomplished this by replacing the multiply and divide operations normally performed with simple, repetitive accumulate operations. Seen elements and pixel fill-in are implemented by a single compare. The range elements of the sweep are scanned by progressively incrementing a delta view angle tangent. Occulting is determined by comparing the projection on the Z axis of delta view angle tangent at the element range to the altitude minus element elevation. If the projection is greater than altitude minus element elevation, the point is seen and the delta tangent view angle is incremented. Otherwise, the point is hidden and the range is incremented. The invention described in my prior application Ser. No. 546,599 uses an X-Y grid data base of the type produced by the Defense Mapping Agency (DMA) in contrast to the vector schemes that were typically used in the prior art. Since only simple addition operations performed with an accumulator and a compare operation are used, the mathematical processing is greatly simplified when compared with the multiplication and division operations resorted to by the prior art.
In addition to the computational problems presented by real-time generation of visual scenes, other limitations in computational speed result from memory accesses to the very large data bases used. As previously mentioned, these data bases are typically referred to as "Winchester" or hard disks and are characterized by the fact that the magnetic medium is not removable. This tyupe of disk storage provides very fast access compared with other bulk storage devices, but the access times are still much too long to allow real-time processing. Therefore, it has been proposed to read the data base into random access memory (RAM) which provides almost instantaneous access. However, this has not been a practical solution except in those cases where the data base is limited because of the comparatively greater cost of RAM compared to disk memory.